<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Clasificacion
 *
 * @author amartinez
 */

include_once '../../../controlador/php/Conexion/Conexion.php';

class Clasificacion {
    private $CategoriaServiciosId;
    private $Nombre;
    private $NivelServicioId;
    private $CsAleatorio;
    private $UsuarioOid;
    private $TipoNecesidadId;
            
    function __construct($CategoriaServiciosId,$Nombre,$NivelServicioId,$CsAleatorio,$UsuarioOid,$TipoNecesidadId) {
        $this->CategoriaServiciosId = $CategoriaServiciosId;
        $this->Nombre = $Nombre;
        $this->NivelServicioId = $NivelServicioId;
        $this->CsAleatorio = $CsAleatorio;
        $this->UsuarioOid = $UsuarioOid;
        $this->TipoNecesidadId = $TipoNecesidadId;
    }
    public function getCategoriaServiciosId(){
        return $this->CategoriaServiciosId;
    }
    public function setCategoriaServiciosId($CategoriaServiciosId){
        $this->CategoriaServiciosId = $CategoriaServiciosId;
    }
    public function getNombre(){
        return $this->Nombre;
    }
    public function setNombre($Nombre){
        $this->Nombre = $Nombre;
    }
    public function getNivelServicioId(){
        return $this->NivelServicioId;
    }
    public function setNivelServicioId($NivelServicioId){
        $this->NivelServicioId = $NivelServicioId;
    }
    public function getCsAleatorio(){
        return $this->CsAleatorio;
    }
    public function setCsAleatorio($CsAleatorio){
        $this->CsAleatorio = $CsAleatorio;
    }
    public function getUsuarioOid(){
        return $this->UsuarioOid;
    }
    public function setUsuarioOid($UsuarioOid){
        $this->UsuarioOid = $UsuarioOid;
    }
    public function getTipoNecesidadId(){
        return $this->TipoNecesidadId;
    }
    public function setTipoNecesidadId($TipoNecesidadId){
        $this->TipoNecesidadId = $TipoNecesidadId;
    }
            
    function CrearClasificacion(){
        
        $con = new Conexion();
       
        if($this->CsAleatorio == 1){
            $CrearClasificacion = "INSERT INTO DnCatServicio_new(CsNombre,NivServicioOid,CsAleatorio,UsuarioOid,TipNecesidadOid)VALUES('".$this->Nombre."','".$this->NivelServicioId."','".$this->CsAleatorio."',NULL,'".$this->TipoNecesidadId."')";
            $con->query($CrearClasificacion);
            
            $ConsultarOid = "SELECT SCOPE_IDENTITY () Oid";
            $Oid = $con ->query($ConsultarOid);
                
            while ($Oid2 = mssql_fetch_array($Oid)){
                $OidClasificacion = $Oid2['Oid'];
            }
            
            print_r(json_encode(array('OidClasificacion'=>$OidClasificacion)));
        }
        else{
            $CrearClasificacion = "INSERT INTO DnCatServicio_new(CsNombre,NivServicioOid,CsAleatorio,UsuarioOid,TipNecesidadOid)VALUES('".$this->Nombre."','".$this->NivelServicioId."','".$this->CsAleatorio."','".$this->UsuarioOid."','".$this->TipoNecesidadId."')";
            $con->query($CrearClasificacion);
            
            $ConsultarOid = "SELECT SCOPE_IDENTITY () Oid";
            $Oid = $con ->query($ConsultarOid);
            
            while ($Oid2 = mssql_fetch_array($Oid)){
                $OidClasificacion = $Oid2['Oid'];
            }
            
            print_r(json_encode(array('OidClasificacion'=>$OidClasificacion)));
        }
        
    
        
        $con->cerrarConexion();
    }
    
    function EditarClasificacion(){
        
        $con = new Conexion();
       
         if($this->CsAleatorio == 1){
            $EditarClasificacion = "UPDATE DnCatServicio_new
                                    SET CsNombre = '".$this->Nombre."',
                                            NivServicioOid = '".$this->NivelServicioId."',
                                            CsAleatorio = '".$this->CsAleatorio."',
                                            UsuarioOid = NULL,
                                            TipNecesidadOid = '".$this->TipoNecesidadId."'
                                    WHERE Oid = '".$this->CategoriaServiciosId."'";
            $con->query($EditarClasificacion);
        }
        else{
            $EditarClasificacion = "UPDATE DnCatServicio_new
                                SET CsNombre = '".$this->Nombre."',
                                        NivServicioOid = '".$this->NivelServicioId."',
                                        CsAleatorio = '".$this->CsAleatorio."',
                                        UsuarioOid = '".$this->UsuarioOid."',
                                        TipNecesidadOid = '".$this->TipoNecesidadId."'
                                WHERE Oid = '".$this->CategoriaServiciosId."'";
        $con->query($EditarClasificacion);
        }
        
    
        
        $con->cerrarConexion();
    }
    
    function DatosClasificacion(){
        
          session_start();
          
          $con = new Conexion();

            $SelectClasificacion = "SELECT C.Oid AS CategoriaServiciosId,CsNombre,C.NivServicioOid,C.CsAleatorio,C.UsuarioOid,N.Oid,N.NsNombre,
                                            CASE WHEN C.UsuarioGlobal = 1 THEN LTRIM(RTRIM(U2.usu_nombres))+' '+LTRIM(RTRIM(U2.usu_apellidos)) ELSE LTRIM(RTRIM(U.usu_nombres))+' '+LTRIM(RTRIM(U.usu_apellidos)) END AS NOMBRES,
                                            C.TipNecesidadOid,T.TnDescripcion,
                                            COMPONENTES.CANTIDAD,Tn.Oid as OidTipoNecesidad,C.UsuarioGlobal,U2.usu_oid AS OidUsuarioGlobal
                                     FROM DnCatServicio_new AS C 
                                     INNER JOIN DnNivServicio_new AS N ON C.NivServicioOid = N.Oid
                                     INNER JOIN DnTipNecesidad_new AS Tn ON C.TipNecesidadOid = Tn.Oid
                                     OUTER APPLY(SELECT * 
                                              FROM usuario 
                                              WHERE usu_oid = C.UsuarioOid)AS U 
                                     OUTER APPLY(SELECT * 
                                              FROM usuario LEFT OUTER JOIN DnUsuGbCate_New AS USUGC ON usuario.usu_oid = USUGC.OidUsuario
                                              WHERE USUGC.OidTipNecesidad = Tn.Oid)AS U2
                                     OUTER APPLY(SELECT * 
                                     FROM DnTipNecesidad_new 
                                     WHERE C.TipNecesidadOid = DnTipNecesidad_new.Oid)AS T
                                     OUTER APPLY(SELECT COUNT(*) AS CANTIDAD 
                                              FROM DnComponentes_New
                                              where DnComponentes_New.OidCatServicio = C.Oid) AS COMPONENTES
                                    WHERE CsNombre LIKE '%".$this->Nombre."%' AND Tn.UsuarioOid = '".$_SESSION['usuario']."'";
            $res  = $con->query($SelectClasificacion);

            while ($row_services = mssql_fetch_array($res)) {

                $lista[] = array_map(utf8_encode,$row_services);
            }
            print_r(json_encode($lista));

             $con->cerrarConexion();
    }
    
    
    //funcion para cargar usuario encargado
    function CargarUsuario($Usuario){
        
         $con = new Conexion();
         
         $datos = array();
         
         $sql = "SELECT usu_oid, LTRIM(RTRIM(usu_nombres)) +' '+ LTRIM(RTRIM(usu_apellidos)) AS NOMBRE_USUARIO, usu_tipoUsu
                        FROM usuario 
                        WHERE usu_nombres LIKE '%".$Usuario."%' OR usu_apellidos LIKE '%".$Usuario."%'
                        ORDER BY usu_nombres";

         $resultado = $con-> query($sql);

         while ($row = mssql_fetch_array($resultado)){
             $datos[] = array ("value"=>$row['NOMBRE_USUARIO'].$row['usu_apellidos'],"Oid"=>$row['usu_oid']);
         }

         return $datos;//retorna los datos como un arreglo dinamico con los datos que se recorren de la consulta
    }
    
    //funcion para cargar usuario encargado
    function CargarUsuario2($Usuario){
        
         $con = new Conexion();
         
         $datos = array();
         
         $sql = "SELECT usu_oid, LTRIM(RTRIM(usu_nombres)) +' '+ LTRIM(RTRIM(usu_apellidos)) AS NOMBRE_USUARIO, usu_tipoUsu
                        FROM usuario 
                        WHERE (usu_nombres LIKE '%".$Usuario."%' OR usu_apellidos LIKE '%".$Usuario."%') and usu_tipoUsu in(61,74,75)
                        ORDER BY usu_nombres";

         $resultado = $con-> query($sql);

         while ($row = mssql_fetch_array($resultado)){
             $datos[] = array ("value"=>$row['NOMBRE_USUARIO'].$row['usu_apellidos'],"Oid"=>$row['usu_oid']);
         }

         return $datos;//retorna los datos como un arreglo dinamico con los datos que se recorren de la consulta
    }
    
    function DatoClasificacion($NivelS){
        
         $con = new Conexion();

           /* if($this->TipoNecesidadId == ""){
                $Consulta= "WHERE NivServicioOid = '".$NivelS."'";
            }else{
                $Consulta = " WHERE C.TipNecesidadOid = '".$this->TipoNecesidadId."'";
            }*/
            $SelectClasificacion = "SELECT C.Oid AS CategoriaServiciosId,CsNombre,C.NivServicioOid,C.CsAleatorio,C.UsuarioOid,N.Oid,N.NsNombre,LTRIM(RTRIM(usu_nombres))+' '+LTRIM(RTRIM(usu_apellidos))AS NOMBRES,C.TipNecesidadOid,T.TnDescripcion
                                    FROM DnCatServicio_new AS C 
                                    INNER JOIN DnNivServicio_new AS N ON C.NivServicioOid = N.Oid
                                    OUTER APPLY(SELECT * 
                                                FROM usuario 
                                                WHERE usu_oid = C.UsuarioOid)AS U 
                                    OUTER APPLY(SELECT * 
                                                FROM DnTipNecesidad_new 
                                                WHERE C.TipNecesidadOid = DnTipNecesidad_new.Oid)AS T
                                    WHERE NivServicioOid = '".$NivelS."'";
            $res  = $con->query($SelectClasificacion);

            while ($row_services = mssql_fetch_array($res)) {

                $lista[] = array_map(utf8_encode,$row_services);
            }
            print_r(json_encode($lista));

             $con->cerrarConexion();
    }
    
    function ConsultarServicio(){
         
            session_start();

            $con = new Conexion();
            if($this->CategoriaServiciosId == ""){
                $Consulta = "";
            }else{
                $Consulta = "OR C.Oid IN (".$this->CategoriaServiciosId.")";
            }
            $ConsultarServicio = "SELECT C.Oid, C.CsNombre, Ns.TipNecesidadOid, Tn.UsuarioOid
                                  FROM DnCatServicio_new AS C
                                  INNER JOIN DnNivServicio_new AS Ns ON NivServicioOid = Ns.Oid
                                  INNER JOIN DnTipNecesidad_new Tn ON Ns.TipNecesidadOid = Tn.OID
                                  WHERE CsAleatorio = 1  AND CsNombre like '%".$this->Nombre."%' AND  Tn.UsuarioOid = '".$_SESSION['usuario']."' ".$Consulta."";
            $res  = $con->query($ConsultarServicio);

            while ($row_services = mssql_fetch_array($res)) {

                $lista[] = array_map(utf8_encode,$row_services);
            }
            print_r(json_encode($lista));

             $con->cerrarConexion();
    }
    
    function CambioEstadousuarioGlobal($Estado,$OidTipoNecesidad){
        
        $con = new Conexion();
        
        $update = "UPDATE DnCatServicio_new
                   SET UsuarioGlobal = ".$Estado."
                   WHERE TipNecesidadOid = ".$OidTipoNecesidad;
        $con->query($update);
        
        print_r(json_encode(array('Estado'=>$Estado)));
        
        $con->cerrarConexion();
        
    }
}

?>
